예외 : 코드 문법적으론 영향이 없어 보이나 실제 동작 시 생길 수 있는 문제
개발자가 예상하여 처리 가능
에러 : 프로그램 동작 시 발생하면 종료되며 개발자가 미리 예측하여 처리하기 어려운 문제
✅ 피드백:
예외 : 개발자가 의도한 상황
에러 : 시스템적인 상황. 복구 불가능한 시스템적 문제
🧩 퀴즈 2
Q. 예외를 처리할 수 있는 방법은 무엇이 있는지 체크드/언체크드 예외 각각에 대해서 설명해보세요.
📝 나의 답변:
예외 처리 시 try-catch문을 사용하여 try문에서 발생한 예외를 catch문에서 처리하고, throw를 사용하여 상위 클래스/메서드로 예외를 던져서 상위에서 처리할 수 있습니다.
체크 예외 : 컴파일 과정에서 검사하는 예외
비체크 예외 : 개발자가 직접 처리하는 예외
✅ 피드백:
체크 예외 : 컴파일 과정에서 검사하는 예외
IOException, SQLException
비체크 예외 : 개발자가 직접 처리하는 예외
NullPointerException, ArithmeticException
try-catch와 throw를 사용하여 예외 처리
🧩 퀴즈 3
Q. 접근제어자에 대한 표를 채워보세요
📝 나의 답변:
제어자
내부 패키지
외부 패키지
클래스
상속 클래스
public
O
O
모든 클래스
O
protected
O
X
같은 패키지 내
O
default
O
X
같은 패키지 내
X
private
X
X
현재 클래스
X
✅ 피드백:
접근제어자
같은 클래스
같은 패키지
하위 클래스
전체 접근
public
✅
✅
✅
✅
protected
✅
✅
✅
❌
default
✅
✅
❌
❌
private
✅
❌
❌
❌
🧩 퀴즈 4
Q. 정규표현식으로 회원가입 시 입력된 핸드폰 번호가 형식에 어긋나지 않는지 검사 하기 위한 코드를 작성해보세요. (010으로 시작하고 -없이 10~11자리 숫자)
Q. Comparator를 사용하여 조회수가 높은 순으로 영상을 정렬하는 코드를 간략히 작성해보세요. 영상 조회수는 getViews로 가져온다고 가정합니다.
📝 나의 답변:
public class Video implements Comparable<Video> {
private String title;
private int views;
public Video(String title, int views) {
this.title = title;
this.views = views;
}
@Override
public int compareTo(Video v1) {
return Integer.compare(this.views, v1.views);
}
@Override
public String toString() {
return title + " : " + views +"회";
}
public int getViews() {
return views;
}
}
import java.util.*;
public class Main {
public static void main(String[] args) {
List<Video> list = Arrays.asList(
new Video("a", 200),
new Video("b", 94732),
new Video("c", 1432),
new Video("d", 203),
new Video("e", 87332)
);
System.out.println(list);
list.sort(Comparator.comparing((Video v)-> -v.getViews()));
System.out.println(list);
}
}